Field
This disclosure is generally related to cache servers. More specifically, this disclosure is related to distributed content stores that actively manage content caching over an Information Centric Network (ICN).
Related Art
Advances in portable Internet-enabled computing technologies have made it easier for people to consume digital content at any time of day, whether at home or on the road. People may use their personal computing device to communicate with others, to search for information that aids them in their daily tasks, and/or to stream music or other media content over the Internet. However, the popularity of the Internet can overwhelm an online service with simultaneous requests from a plurality of users, from various geographic locations. If the online service cannot handle requests from client devices in a timely manner, users of the online service may experience delays that interfere with their user experience. If this happens often, the users may perceive the online service to be of low quality, and may even decide to switch to a competing online service that does not suffer from such latencies.
To better serve content to users, system administrators or service providers oftentimes deploy a set of web servers to host the online content, and may leverage a plurality of cache servers across various geographic locations to serve the content to the client devices. As more users sign up with the online service, the system administrator can deploy additional cache servers to improve performance to the client devices.
However, cache servers are oftentimes designed to cache only data that is most-frequently or most recently requested by the client devices. This improves the request response time for popular data, which makes the web service responsive to requests from most client devices. Unfortunately, when a client device issues a request for unpopular data, it is likely that this unpopular data has not been cached at a cache server, which can result in an undesirably long request response time. For example, a movie-streaming service may store popular movies on various cache servers, which allows the movie-streaming service to provide the movie to client devices in a high-definition format. However, if a user desires to watch a movie that is not currently popular, the movie-streaming service may need to service this movie directly from a server configured to handle unpopular content or a slower machine with direct access to the full content catalogue. The streaming performance from the media-storage server to the client device may be inferior to that from a nearby cache server, which can result in buffering issues during content playback, or may require the media-storage server to stream a lower-resolution version of the media stream.